I was working the following example from Doug Hellmann tutorial on multiprocessing:
import multiprocessing
def worker():
    """worker function"""
    print 'Worker'
    return
if __name__ == '__main__':
    jobs = []
    for i in range(5):
        p = multiprocessing.Process(target=worker)
        jobs.append(p)
        p.start()
When I tried to run it outside the if statement:
import multiprocessing
def worker():
    """worker function"""
    print 'Worker'
    return
jobs = []
for i in range(5):
    p = multiprocessing.Process(target=worker)
    jobs.append(p)
    p.start()
It started spawning processes non-stop, and the only way to stop it was reboot!
Why would that happen? Why it did not generate 5 processes and exit? Why do I need the if statement?