Não é possível pickle <tipo 'instancemethod'> ao usar o multiprocessamento Pool.map ()

Estou tentando usarmultiprocessing'sPool.map() função para dividir o trabalho simultaneamente. Quando eu uso o seguinte código, funciona bem:

import multiprocessing

def f(x):
    return x*x

def go():
    pool = multiprocessing.Pool(processes=4)        
    print pool.map(f, range(10))


if __name__== '__main__' :
    go()

No entanto, quando eu usá-lo em uma abordagem mais orientada a objetos, ele não funciona. A mensagem de erro é:

PicklingError: Can't pickle <type 'instancemethod'>: attribute lookup
__builtin__.instancemethod failed

Isso ocorre quando o seguinte é meu programa principal:

import someClass

if __name__== '__main__' :
    sc = someClass.someClass()
    sc.go()

e o seguinte é meusomeClass classe:

import multiprocessing

class someClass(object):
    def __init__(self):
        pass

    def f(self, x):
        return x*x

    def go(self):
        pool = multiprocessing.Pool(processes=4)       
        print pool.map(self.f, range(10))

Alguém sabe o que o problema poderia ser, ou uma maneira fácil de contornar isso?

questionAnswers(11)

yourAnswerToTheQuestion