We introduce the Ensemble Earthquake Early Warning System (E3WS), a set of Machine Learning algorithms designed to detect, locate and estimate the magnitude of an earthquake using 3 seconds of P waves recorded by a single station. The system is made of 6 Ensemble Machine Learning algorithms trained on attributes computed from ground acceleration time series in the temporal, spectral and cepstral domains. The training set comprises datasets from Peru, Chile, Japan, and the STEAD global dataset. E3WS consists of three sequential stages: detection, P-phase picking and source characterization. The latter involves magnitude, epicentral distance, depth and back-azimuth estimation. E3WS achieves an overall success rate in the discrimination between earthquakes and noise of 99.9%, with no false positive (noise mis-classified as earthquakes) and very few false negatives (earthquakes mis-classified as noise). All false negatives correspond to M ≤ 4.3 earthquakes, which are unlikely to cause any damage. For P-phase picking, the Mean Absolute Error is 0.14 s, small enough for earthquake early warning purposes. For source characterization, the E3WS estimates are virtually unbiased, have better accuracy for magnitude estimation than existing single-station algorithms, and slightly better accuracy for earthquake location. By updating estimates every second, the approach gives time-dependent magnitude estimates that follow the earthquake source time function. E3WS gives faster estimates than present alert systems relying on multiple stations, providing additional valuable seconds for potential protective actions.