Downloads the images from the retrieved image URLs and
        stores in the specified destination folder.
        Multiprocessing is being used to minimize the download time

def _download_images(self):
        """
        Downloads the images from the retrieved image URLs and
        stores in the specified destination folder.
        Multiprocessing is being used to minimize the download time
        """

        print('\nDownloading Images for the Query: ' + self._imageQuery)

        try:
            self._initialize_progress_bar()

            # Initialize and assign work to the threads in the threadpool
            threadPool = Pool(self._threadCount)
            threadPool.map(self._download_image, self._imageURLs)

            threadPool.close()
            threadPool.join()

            # Download each image individually
            # [self._download_image(imageURL) for imageURL in self._imageURLs]

            self._downloadProgressBar.finish()

        except Exception as exception:
            print('Error - Image Download: ' + format(exception))