Multiprocessamento Python e um contador compartilhado

Estou tendo problemas com o módulo de multiprocessamento. Estou usando um pool de trabalhadores com seu método de mapa para carregar dados de muitos arquivos e, para cada um deles, analiso dados com uma função personalizada. Cada vez que um arquivo é processado, eu gostaria de ter um contador atualizado para poder acompanhar quantos arquivos ainda precisam ser processados. Aqui está o código de exemplo:

def analyze_data( args ):
    # do something 
    counter += 1
    print counter


if __name__ == '__main__':

    list_of_files = os.listdir(some_directory)

    global counter
    counter = 0

    p = Pool()
    p.map(analyze_data, list_of_files)

Não consigo encontrar uma solução para isso.

questionAnswers(3)

yourAnswerToTheQuestion