Python Multiprocess diff entre Windows y Linux

Tengo un script llamado jobrunner.py que llama a métodos de clase en main.py. Vea abajo..

# jobrunner.py
from multiprocessing import Process
import main
from main import BBOX

def _a(arg):
    f = main.a()
    print f.run()

def _b(arg):
    p = main.b()
    print p.run()

if __name__ == '__main__':
    world = '-180,180,-90,90'
    BBOX.append(world.split(','))

    p1 = Process(target=_a, args=("1",))
    p2 = Process(target=_b, args=("1",))

    p1.start()
    p2.start()

    p1.join()
    p2.join()

Los procesos _a y _b se invocan sin problemas en OSX y Ubuntu, pero cuando trato de ejecutar lo mismo en Windows (la misma versión de Python y todo), falla diciendo que el índice está fuera de rango. Esto me lleva a creer que la variable "global" BBOX no se está configurando o pasando entre módulos en la plataforma Windows. ¿Alguien más ha visto algo como esto y sabe cómo solucionarlo?

Adá

ACTUALIZAR Lo descubrí a pesar de que podría ser un truco total ... ¡Mira a continuación!

# jobrunner.py
from multiprocessing import Process
import main
from main import BBOX

def _a(arg):
    BBOX.append(arg) #This is the key
    f = main.a()
    print f.run()

def _b(arg):
    BBOX.append(arg) #This is the key
    p = main.b()
    print p.run()

if __name__ == '__main__':
    world = '-180,180,-90,90'
    BBOX.append(world.split(','))

    p1 = Process(target=_a, args=(BBOX[0],))
    p2 = Process(target=_b, args=(BBOX[0],))

    p1.start()
    p2.start()

    p1.join()
    p2.join()

Respuestas a la pregunta(1)

Su respuesta a la pregunta