I am trying to use urllib.request.urlretrieve along with the multiprocessing module to download some files and do some processing on them. However, each time I try to run my program, it gives me the error:

```
multiprocessing.pool.RemoteTraceback: 
"""
Traceback (most recent call last):
  File "/usr/lib/python3.4/multiprocessing/pool.py", line 119, in worker
    result = (True, func(*args, **kwds))
  File "/usr/lib/python3.4/multiprocessing/pool.py", line 44, in mapstar
    return list(map(*args))
  File "./thumb.py", line 13, in download_and_convert
    filename, headers = urlretrieve(url)
  File "/usr/lib/python3.4/urllib/request.py", line 186, in urlretrieve
    with contextlib.closing(urlopen(url, data)) as fp:
  File "/usr/lib/python3.4/urllib/request.py", line 161, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/lib/python3.4/urllib/request.py", line 463, in open
    response = self._open(req, data)
  File "/usr/lib/python3.4/urllib/request.py", line 486, in _open
    'unknown_open', req)
  File "/usr/lib/python3.4/urllib/request.py", line 441, in _call_chain
    result = func(*args)
  File "/usr/lib/python3.4/urllib/request.py", line 1252, in unknown_open
    raise URLError('unknown url type: %s' % type)
urllib.error.URLError: <urlopen error unknown url type: http>
"""

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "./thumb.py", line 27, in <module>
    pool.map(download_and_convert, enumerate(csvr))
  File "/usr/lib/python3.4/multiprocessing/pool.py", line 260, in map
    return self._map_async(func, iterable, mapstar, chunksize).get()
  File "/usr/lib/python3.4/multiprocessing/pool.py", line 599, in get
    raise self._value
urllib.error.URLError: <urlopen error unknown url type: http>

```

The url that it seems to choke on is `http://phytoimages.siu.edu/users/vitt/10_27_06_2/Equisetumarvense.JPG`. Here is my code:

```
#!/usr/bin/env python3

from subprocess import Popen
from sys import argv, stdin
import csv
from multiprocessing import Pool
from urllib.request import urlretrieve

def download_and_convert(args):
    num, url_list = args
    url = url_list[0]
    try:
        filename, headers = urlretrieve(url)
    except:
        print(url)
        raise
    Popen(["convert", filename, "-resize", "250x250",\
           str(num)+'.'+url.split('.')[-1]])

if __name__ == "__main__":
    csvr = csv.reader(open(argv[1]))

    if(len(argv) > 2): nprocs = argv[2]
    else: nprocs = None

    pool = Pool(processes=nprocs)
    pool.map(download_and_convert, enumerate(csvr))

```

I have no idea why this error is ocurring. Could it be because I am using multiprocessing? If anyone could help me, it would be much appreciated.

Edit: This is the first url it tries to process, and it doesn't change the error if I change it.