async def METHOD_NAME(cls, config: Dict) -> ActorPoolType:
    kw = dict()
    cls._parse_config(config, kw)
    process_index: int = kw["process_index"]
    actor_pool_config = kw["config"]  # type: ActorPoolConfig
    external_addresses = actor_pool_config.get_pool_config(process_index)[
        "external_address"
    ]
    def handle_channel(channel):
        return pool.on_new_channel(channel)
    # create servers
    server_addresses = external_addresses + [gen_local_address(process_index)]
    server_addresses = sorted(set(server_addresses))
    servers = await cls._create_servers(server_addresses, handle_channel)
    cls._update_stored_addresses(servers, server_addresses, actor_pool_config, kw)
    # create pool
    pool = cls(**kw)
    return pool