Multiprocessing in Python

import multiprocessing
from multiprocessing.spawn import freeze_support

def print1():
    print("Print1")


def print2(num1):
    print("Print2 : {0}".format(num1))


def print3(num1, num2):
    print("Print3 : {0}, {1}".format(num1, num2))


if __name__ == '__main__':
    # Run code for process object if this in not the main process
    freeze_support()

    # creating processes
    p1 = multiprocessing.Process(target=print1)
    p2 = multiprocessing.Process(target=print2, args=(10,))
    p3 = multiprocessing.Process(target=print3, args=(10, 20,))

    # starting processes
    p1.start()
    p2.start()
    p3.start()

    # wait until processes are finished
    p1.join()
    p2.join()
    p3.join()

References
https://www.geeksforgeeks.org/multiprocessing-python-set-1/
https://stackoverflow.com/questions/8804830/python-multiprocessing-picklingerror-cant-pickle-type-function