Repository: fairlearn/fairlearn

Issue:
MetricFrame: missing error message
#### Describe the bug


#### Steps/Code to Reproduce
![image](https://user-images.githubusercontent.com/10245648/98857843-7bce5e00-2414-11eb-8ed8-1b123440f733.png)



```
from fairlearn.metrics import MetricFrame
from sklearn.metrics import balanced_accuracy_score
MetricFrame(balanced_accuracy_score, [1], [1], sensitive_features=[0])
```

#### Versions

System:
    python: 3.7.6 (default, Jan  8 2020, 20:23:39) [MSC v.1916 64 bit (AMD64)]
executable: C:\Users\<alias>\Anaconda3\python.exe
   machine: Windows-10-10.0.19041-SP0

Python dependencies:
    Cython: 0.29.15
matplotlib: 3.2.2
     numpy: 1.19.0
    pandas: 1.0.5
       pip: 20.0.2
     scipy: 1.4.1
setuptools: 45.2.0.post20200210
   sklearn: 0.23.1
    tempeh: 0.1.12


Discussion:

Patch:
diff --git a/fairlearn/metrics/_metric_frame.py b/fairlearn/metrics/_metric_frame.py
index 1dd33d0..e8644f9 100644
--- a/fairlearn/metrics/_metric_frame.py
+++ b/fairlearn/metrics/_metric_frame.py
@@ -512,7 +512,7 @@ class MetricFrame:
                 result.append(GroupFeature(base_name, column, i, None))
         elif isinstance(features, list):
             if np.isscalar(features[0]):
-                f_arr = np.squeeze(np.asarray(features))
+                f_arr = np.atleast_1d(np.squeeze(np.asarray(features)))
                 assert len(f_arr.shape) == 1  # Sanity check
                 check_consistent_length(f_arr, sample_array)
                 result.append(GroupFeature(base_name, f_arr, 0, None))


Test patch:
diff --git a/test/unit/metrics/test_metricframe_smoke.py b/test/unit/metrics/test_metricframe_smoke.py
index a0787ab..1e18442 100644
--- a/test/unit/metrics/test_metricframe_smoke.py
+++ b/test/unit/metrics/test_metricframe_smoke.py
@@ -260,3 +260,9 @@ def test_duplicate_cf_sf_names():
                                 sensitive_features=sf,
                                 control_features=cf)
     assert execInfo.value.args[0] == msg
+
+
+def test_single_element_lists():
+    mf = metrics.MetricFrame(skm.balanced_accuracy_score,
+                             [1], [1], sensitive_features=[0])
+    assert mf.overall == 1