def remove_settings(file_path, retry_count=10, remove_dir=False):

    '''
        a method to remove a file using a child process

        http://www.petercollingridge.co.uk/blog/running-multiple-processes-python
        https://docs.python.org/3.5/library/multiprocessing.html

    :param file_path: string with path to file to remove
    :param retry_count: integer with number of attempts to remove before error is thrown
    :param remove_dir: [optional] boolean to remove empty parent directories
    :return: None
    '''

# validate inputs
    title = 'remove_settings'
    try:
        _path_arg = '%s(file_path=%s)' % (title, str(file_path))
    except:
        raise ValueError('%s(file_path=...) must be a string.' % title)
    if not isinstance(retry_count, int):
        raise ValueError('%s(retry_count=...) must be an integer.' % title)
    elif retry_count < 1:
        raise ValueError('%s(retry_count=%s) must be greater than 0.' % (title, retry_count))

# create a child process to remove file
    from multiprocessing import Process
    child_process = Process(target=_remove_settings, args=(file_path, retry_count, remove_dir))
    child_process.start()
a method to remove a file using a child process

        http://www.petercollingridge.co.uk/blog/running-multiple-processes-python
        https://docs.python.org/3.5/library/multiprocessing.html

    :param file_path: string with path to file to remove
    :param retry_count: integer with number of attempts to remove before error is thrown
    :param remove_dir: [optional] boolean to remove empty parent directories
    :return: None