##### SUMMARY
Custom lookup plugin appears correctly configured using ```ansible-doc -t lookup listFolders```  however always results in ```FAILED! => {"msg": "lookup plugin (listFolders) not found"}``` when used in playbook.

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
- Custom lookup plugin

##### ANSIBLE VERSION
```
ansible 2.9.2
  config file = /Users/xxxx/.ansible.cfg
  configured module search path = ['/Users/xxxx/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/Cellar/ansible/2.9.2_1/libexec/lib/python3.8/site-packages/ansible
  executable location = /usr/local/bin/ansible
  python version = 3.8.1 (default, Dec 27 2019, 18:05:45) [Clang 11.0.0 (clang-1100.0.33.16)]
```

##### CONFIGURATION
```
defaults only
```

##### OS / ENVIRONMENT
- macOS Mojave 10.14.6
- zsh 5.3 (x86_64-apple-darwin18.0)

##### STEPS TO REPRODUCE
Here is a trivial custom lookup plugin that just contains documentation to test my configuration. 
It is placed in /Users/xxxx/.ansible/plugins/lookup/listFolders.py
```
DOCUMENTATION = """
    lookup: listFolders
    short_description: returns list from yaml descriptor
    description:
        - This lookup returns a list from the yaml descriptor
"""
```

This command correctly pics up the lookup plugin:
```ansible-doc -t lookup listFolders```

And shows the output:
```
> LISTFOLDERS    (/Users/xxxx/.ansible/plugins/lookup/listFolders.py)

        This lookup returns a list from the yaml descriptor

  * This module is maintained by The Ansible Community
        METADATA:
          status:
          - preview
          supported_by: community
```

However in a playbook I always hit this error:
```fatal: [localhost]: FAILED! => {"msg": "lookup plugin (listFolders) not found"}```

Here is a sample playbook that produces the error:
```
---
- name: "Test custom lookup plugin"
  hosts: localhost
  tasks:
    - name: lookup listFolders
      debug:
        msg: '{{ lookup("listFolders") }}'

```

##### EXPECTED RESULTS
```
TASK [lookup listFolders] ***************************************************************************************************************************************************************
ok: [localhost]
```


##### ACTUAL RESULTS
```
TASK [lookup listFolders] ***************************************************************************************************************************************************************
fatal: [localhost]: FAILED! => {"msg": "lookup plugin (listFolders) not found"}
```


<!--- Paste verbatim command output between quotes -->
```
> ansible-playbook testplaybook.yml 

[WARNING]: No inventory was parsed, only implicit localhost is available

[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'


PLAY [Test custom lookup plugin] ************************************************************************************************************************

TASK [Gathering Facts] ******************************************************************************************************************************************************************
ok: [localhost]

TASK [lookup listFolders] ***************************************************************************************************************************************************************
fatal: [localhost]: FAILED! => {"msg": "lookup plugin (listFolders) not found"}

PLAY RECAP ******************************************************************************************************************************************************************************
localhost                  : ok=1    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0
```

if not isinstance(key, string_types):
            raise ValueError('key must be a string')
        key = to_native(key)
        if '.' not in key:  
            return self._delegatee.__getitem__(key)
        func = self._collection_jinja_func_cache.get(key)
        if func:
            return func
        acr = AnsibleCollectionRef.try_parse_fqcr(key, self._dirname)
        if not acr:
            raise KeyError('invalid plugin name: {0}'.format(key))
        
        pkg = import_module(acr.n_python_package_name)
        parent_prefix = acr.collection
        if acr.subdirs:
            parent_prefix = '{0}.{1}'.format(parent_prefix, acr.subdirs)
        for dummy, module_name, ispkg in pkgutil.iter_modules(pkg.__path__, prefix=parent_prefix + '.'):
            if ispkg:
                continue
            plugin_impl = self._pluginloader.get(module_name)
            method_map = getattr(plugin_impl, self._method_map_name)
            for f in iteritems(method_map()):
                fq_name = '.'.join((parent_prefix, f[0]))
                
                self._collection_jinja_func_cache[fq_name] = f[1]
        function_impl = self._collection_jinja_func_cache[key]
        return function_impl
    def __setitem__(self, key, value):