A Future is a placeholder object for a value that may not yet exist. Generally, the value of the Future is supplied concurrently and can subsequently be used.
つまり、あくまでFutureはプレースホルダとして使われるものであって、Futureそれ自体が並列処理とイコールってわけではなく、ただ一般的に並列処理として使われることが多いっていう話。
で、ExecutionContextは、非同期処理をいい感じにやってくれる仕組みで、そのための実装として、newFixedThreadPoolとかnewCachedThreadPoolとかがある、っていう理解。