diff --git a/src/dotenv/main.py b/src/dotenv/main.py
index e7ad430..7841066 100644
--- a/src/dotenv/main.py
+++ b/src/dotenv/main.py
@@ -87,6 +87,9 @@ class DotEnv():
         """
         Load the current dotenv as system environment variable.
         """
+        if not self.dict():
+            return False
+
         for k, v in self.dict().items():
             if k in os.environ and not self.override:
                 continue
@@ -324,6 +327,8 @@ def load_dotenv(
         override: Whether to override the system environment variables with the variables
             from the `.env` file.
         encoding: Encoding to be used to read the file.
+    Returns:
+        Bool: True if atleast one environment variable is set elese False
 
     If both `dotenv_path` and `stream` are `None`, `find_dotenv()` is used to find the
     .env file.

diff --git a/tests/test_main.py b/tests/test_main.py
index ca14b1a..82c73ba 100644
--- a/tests/test_main.py
+++ b/tests/test_main.py
@@ -259,8 +259,9 @@ def test_load_dotenv_no_file_verbose():
     logger = logging.getLogger("dotenv.main")
 
     with mock.patch.object(logger, "info") as mock_info:
-        dotenv.load_dotenv('.does_not_exist', verbose=True)
+        result = dotenv.load_dotenv('.does_not_exist', verbose=True)
 
+    assert result is False
     mock_info.assert_called_once_with("Python-dotenv could not find configuration file %s.", ".does_not_exist")
 
 

load_dotenv() returns True even if .env file is not found
This behaviour is not ideal since if the configuration file is not found in the filesystem it may be better to return False.
In this way the user can write something like:
```python
if load_dotenv():
    #do stuff
else
    print("No file .env found")
```

# Steps to reproduce
```
In [1]: import dotenv

In [2]: dotenv.load_dotenv()
Out[2]: True

In [3]: dotenv.find_dotenv()
Out[3]: ''
```
tests/test_main.py::test_load_dotenv_no_file_verbose
tests/test_main.py::test_set_key_no_file tests/test_main.py::test_set_key[-a--expected0-a=''\n] tests/test_main.py::test_set_key[-a-b-expected1-a='b'\n] tests/test_main.py::test_set_key[-a-'b'-expected2-a='\\'b\\''\n] tests/test_main.py::test_set_key[-a-"b"-expected3-a='"b"'\n] tests/test_main.py::test_set_key[-a-b'c-expected4-a='b\\'c'\n] tests/test_main.py::test_set_key[-a-b"c-expected5-a='b"c'\n] tests/test_main.py::test_set_key[a=b-a-c-expected6-a='c'\n] tests/test_main.py::test_set_key[a=b\n-a-c-expected7-a='c'\n] tests/test_main.py::test_set_key[a=b\n\n-a-c-expected8-a='c'\n\n] tests/test_main.py::test_set_key[a=b\nc=d-a-e-expected9-a='e'\nc=d] tests/test_main.py::test_set_key[a=b\nc=d\ne=f-c-g-expected10-a=b\nc='g'\ne=f] tests/test_main.py::test_set_key[a=b\n-c-d-expected11-a=b\nc='d'\n] tests/test_main.py::test_set_key[a=b-c-d-expected12-a=b\nc='d'\n] tests/test_main.py::test_set_key_encoding tests/test_main.py::test_get_key_no_file tests/test_main.py::test_get_key_not_found tests/test_main.py::test_get_key_ok tests/test_main.py::test_get_key_encoding tests/test_main.py::test_get_key_none tests/test_main.py::test_unset_with_value tests/test_main.py::test_unset_no_value tests/test_main.py::test_unset_encoding tests/test_main.py::test_unset_non_existent_file tests/test_main.py::test_find_dotenv_no_file_raise tests/test_main.py::test_find_dotenv_no_file_no_raise tests/test_main.py::test_find_dotenv_found tests/test_main.py::test_load_dotenv_existing_file tests/test_main.py::test_load_dotenv_existing_variable_no_override tests/test_main.py::test_load_dotenv_existing_variable_override tests/test_main.py::test_load_dotenv_redefine_var_used_in_file_no_override tests/test_main.py::test_load_dotenv_redefine_var_used_in_file_with_override tests/test_main.py::test_load_dotenv_string_io_utf_8 tests/test_main.py::test_load_dotenv_file_stream tests/test_main.py::test_load_dotenv_in_current_dir tests/test_main.py::test_dotenv_values_file tests/test_main.py::test_dotenv_values_string_io[env0-a=$b-False-expected0] tests/test_main.py::test_dotenv_values_string_io[env1-a=$b-True-expected1] tests/test_main.py::test_dotenv_values_string_io[env2-a=${b}-False-expected2] tests/test_main.py::test_dotenv_values_string_io[env3-a=${b}-True-expected3] tests/test_main.py::test_dotenv_values_string_io[env4-a=${b:-d}-False-expected4] tests/test_main.py::test_dotenv_values_string_io[env5-a=${b:-d}-True-expected5] tests/test_main.py::test_dotenv_values_string_io[env6-b=c\na=${b}-True-expected6] tests/test_main.py::test_dotenv_values_string_io[env7-a=${b}-True-expected7] tests/test_main.py::test_dotenv_values_string_io[env8-a=${b:-d}-True-expected8] tests/test_main.py::test_dotenv_values_string_io[env9-a="${b}"-True-expected9] tests/test_main.py::test_dotenv_values_string_io[env10-a='${b}'-True-expected10] tests/test_main.py::test_dotenv_values_string_io[env11-a=x${b}y-True-expected11] tests/test_main.py::test_dotenv_values_string_io[env12-a=${a}-True-expected12] tests/test_main.py::test_dotenv_values_string_io[env13-a=${a}-True-expected13] tests/test_main.py::test_dotenv_values_string_io[env14-a=${a:-c}-True-expected14] tests/test_main.py::test_dotenv_values_string_io[env15-a=${a:-c}-True-expected15] tests/test_main.py::test_dotenv_values_string_io[env16-a=${b}${b}-True-expected16] tests/test_main.py::test_dotenv_values_string_io[env17-b=d\na=${b}-True-expected17] tests/test_main.py::test_dotenv_values_string_io[env18-a=b\na=c\nd=${a}-True-expected18] tests/test_main.py::test_dotenv_values_string_io[env19-a=b\nc=${a}\nd=e\nc=${d}-True-expected19] tests/test_main.py::test_dotenv_values_file_stream