Why python executable opens new window instance when function by multiprocessing module is called on windows

Solution 1:

If you want to use multiprocessing as a frozen executable, you need to call multiprocessing.freeze_support() at the beginning of your main script. This will allow multiprocessing to "take over" when it spawns its worker processes.

See also https://github.com/pyinstaller/pyinstaller/wiki/Recipe-Multiprocessing