El multiprocesamiento de python apply_async solo usa un proceso

Tengo un script que incluye abrir un archivo de una lista y luego hacer algo en el texto dentro de ese archivo. Estoy usando Python multiprocessing y Pool para intentar paralelizar esta operación. A continuación se muestra una abstracción del guión:

import os
from multiprocessing import Pool

results = []
def testFunc(files):
    for file in files:
        print "Working in Process #%d" % (os.getpid())
        #This is just an illustration of some logic. This is not what I'm actually doing.
        for line in file:
            if 'dog' in line:
                results.append(line)

if __name__=="__main__":
    p = Pool(processes=2)
    files = ['/path/to/file1.txt', '/path/to/file2.txt']
    results = p.apply_async(testFunc, args = (files,))
    results2 = results.get()

Cuando ejecuto esto, la impresión del identificador de proceso es la misma para cada iteración. Básicamente, lo que estoy tratando de hacer es tomar cada elemento de la lista de entrada y llevarlo a un proceso separado, pero parece que un proceso está haciendo todo el trabajo.

Respuestas a la pregunta(2)

Su respuesta a la pregunta