title: Why am I receiving a Recursion error with multiprocessing?
body: <p>I'm looking to geocode a large list of addresses using multiprocessing. I have the following code:</p>
  
  <pre><code>import multiprocessing
  import geocoder
  
  addresses = ['New York City, NY','Austin, TX', 'Los Angeles, CA', 'Boston, MA'] # and on and on
  
  def geocode_worker(address):
      return geocoder.arcgis(address)
  
  def main_process():
      pool = multiprocessing.Pool(processes=multiprocessing.cpu_count())
      return pool.map(geocode_worker, addresses)
  
  if __name__ == '__main__':
      main_process()
  </code></pre>
  
  <p>But it gives me this error:</p>
  
  <pre><code>Traceback (most recent call last):
    File "/opt/anaconda3/lib/python3.7/threading.py", line 926, in _bootstrap_inner
      self.run()
    File "/opt/anaconda3/lib/python3.7/threading.py", line 870, in run
      self._target(*self._args, **self._kwargs)
    File "/opt/anaconda3/lib/python3.7/multiprocessing/pool.py", line 470, in _handle_results
      task = get()
    File "/opt/anaconda3/lib/python3.7/multiprocessing/connection.py", line 251, in recv
      return _ForkingPickler.loads(buf.getbuffer())
    File "/opt/anaconda3/lib/python3.7/site-packages/geocoder/base.py", line 599, in __getattr__
      if not self.ok:
    File "/opt/anaconda3/lib/python3.7/site-packages/geocoder/base.py", line 536, in ok
      return len(self) &gt; 0
    File "/opt/anaconda3/lib/python3.7/site-packages/geocoder/base.py", line 422, in __len__
      return len(self._list)
  </code></pre>
  
  <p>The last 3 lines of the error are repeated over and over again, and then the last line of the traceback is:</p>
  
  <pre><code>RecursionError: maximum recursion depth exceeded while calling a Python object
  </code></pre>
  
  <p>Can anyone help me figure out why?</p>