title: Python multiprocessing with M1 Mac
body: <p>I have a mac (Mac Os 11.1, Python Ver 3.8.2) and need to work in multiprocessing, but the procedures doesn’t work.</p>
  <pre><code>import multiprocessing
  
  
  def func(index: int):
      print(index)
  
  
  manager = multiprocessing.Manager()
  processes = []
  
  for i in range(-1, 10):
      p = multiprocessing.Process(target=func,
                                  args=(i,))
      processes.append(p)
      p.start()
  
  for process in processes:
      process.join()
  </code></pre>
  <p>However, on my Intel-based Mac, it works fine.</p>
  <p>What I expect is</p>
  <pre><code>-1
  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
  </code></pre>
  <p>But instead, I got an error:</p>
  <pre><code>RuntimeError: 
          An attempt has been made to start a new process before the
          current process has finished its bootstrapping phase.
  
          This probably means that you are not using fork to start your
          child processes and you have forgotten to use the proper idiom
          in the main module:
  
              if __name__ == '__main__':
                  freeze_support()
                  ...
  
          The &quot;freeze_support()&quot; line can be omitted if the program
          is not going to be frozen to produce an executable.
  Traceback (most recent call last):
    File &quot;/Users/lance/Documents/Carleton Master Projects/Carleton-Master-Thesis/experiment.py&quot;, line 7, in &lt;module&gt;
      manager = multiprocessing.Manager()
    File &quot;/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/multiprocessing/context.py&quot;, line 57, in Manager
      m.start()
    File &quot;/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/multiprocessing/managers.py&quot;, line 583, in start
      self._address = reader.recv()
    File &quot;/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/multiprocessing/connection.py&quot;, line 250, in recv
      buf = self._recv_bytes()
    File &quot;/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/multiprocessing/connection.py&quot;, line 414, in _recv_bytes
      buf = self._recv(4)
    File &quot;/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/multiprocessing/connection.py&quot;, line 383, in _recv
      raise EOFError
  EOFError
  </code></pre>
  <p>Is there any similar way (also keep it easy) to parallelize in M1-based Mac?</p>