alternative ways to start process parent process will not be inherited starting process using this method is rather slow compared to using fork or forkserver available on unix and windows this is the default on windows 'forkthe parent process uses os fork(to fork the python interpreter the child processwhen it beginsis effectively identical to the parent process all resources of the parent are inherited by the child process available only on unix type operating systems this is the default on unixlinux and mac os 'forkserverin this case server process is started from then onwhenever new process is neededthe parent process connects to the server and requests that it fork new process the fork server process is single threaded so it is safe for it to use os fork(no unnecessary resources are inherited available on unix style platforms which support passing file descriptors over unix pipes the set_start_method(should be used to set the start method (and this should only be set once within programthis is illustrated belowwhere the spawn start method is specifiedfrom multiprocessing import process from multiprocessing import set_start_method from time import sleep import os def worker(msg)print('module name:'__name__print('parent process:'os getppid()print('process id:'os getpid()for in range( )print(msgend=''flush=truesleep( def main()print('starting'print('root application process id:'os getpid()set_start_method('spawn' process(target=workerargs=' ' start(print('done'if __name__ ='__main__'main(the output from this is shown belowstarting root application process id done