Are the 7 base quantities in SI system really independent? In a typical  description of  the 7 base quantities of the SI system we see the following two points: 


*

*All other quantities can be derived from them.

*They are "independent".


My question is about the term "independent". It seems to mean that none of these base quantities can be defined in terms of the other 6. But then we can define 
Ampere in terms of force and distance (the usual parallel wire definition), and force can be reduced to M, L and T. Does this not mean that current is "dependent" on M, L and T? 
Thanks a lot for taking time to read my question.
 A: As you correctly note, the definitions of the kilogram, meter and second are necessary to define the ampere. However, it doesn't mean that they are sufficient for that purpose. Formally, what you require is that the seven base dimensions of the SI be linearly independent in the vector space I describe in this answer.
Each SI unit introduces something new to the mix. The definition of the meter depends on the one for the second, but using just a stopwatch there's nothing we can say about lengths until we bring in the speed of light. The same goes for current - we can talk a lot about forces using standards for mass, length and time, but electrical measurements are impossible without an additional standard. 
Metrologically speaking, on the other hand, it is very important to keep track of how each standard depends on other base units, because that has a profound influence on how precise each standard can be. For example, the standard for electrical current depends on one mass standard, which is based on the artefact kilogram; this means that one can never really measure SI currents to a better precision than the nine significant figures of stability in the IPK.
The current SI units have a fairly complex web of interdependences, shown on the left. This will be replaced within a few years by the 'new SI', with an even more interconnected graph shown on the right.
 
Image source 1, Image source 2
A: So a unit provides two different things: type and scale. When you say e.g. $1000 \text{ ms} = 1\text{ s}$ you are communicating both a type-equality and a scale factor between them.
Type, in physics, is really subtle. Yes, we can make do with a lot fewer types than the SI system uses; in fact physicists using Planck units frequently make do with only one type (though this depends on the fact that they don't have a unit for luminous intensity and use 1 as their unit of numbers-of-particles). Similarly, some programming languages are very weakly typed; for example with shell scripting you mostly have to think "everything is a string" to survive. 
At the same time, we routinely make type-level judgments which exist at a higher level than the SI units. One super-simple example is that the SI system does not encode a type difference between an integer, an angle, and a solid angle, but most people will conceptually separate these and, for example, if one is talking about the solid angle subtended by a penny at arm's length, one would tend to refuse to add the integer 2 to it. Another simple example: many (most?) physicists have been burned at one point or another by a confusion between frequencies and angular velocities; these have the same SI type of $T^{-1}$ and are separated by a scale of $2\pi$: but frequently this difference is just enough to accidentally misconfigure a calculation or experimental apparatus to the point of "it's not working, and it should be! Why is this result 0 instead of the peak that I was looking for?!" ... so you learn to keep a mental type classification between angular frequencies $\text{rad/s}$ and absolute frequencies $\text{Hz}$ (or however you want to think of them).
(In fact this mental classification is so rigid that even though the Fourier transform convention $$g[f] = \underset{t\to f}{\mathcal F} ~~g = \int_{-\infty}^{\infty} dt~e^{-2\pi \mathrm i~f~t}~g(t)$$is in many ways superior (it has no normalization factors and gives you the absolute frequencies rather than angular ones), it is much more common in physics to see $e^{-i~\omega~t}.$ That this should be negative is a separate matter best exemplified by the Dirac $\delta$-function.)
The SI base units are therefore not an exhaustive list of types; rather, the SI type system is simplified from the much more rich type system in physicists' heads, to a plainer model which is the span of those base units' types. This makes it much easier, for example, to program into a computer. For example in Haskell, which is strictly typed, you could program it to do runtime type checking as:
import Data.Ratio -- rational numbers
type Q = Ratio

-- define the type-level data structure as an object with 7 rationals describing the 
-- exponents of the different type-dimensions.
data SIType = SIType {
    sit_m :: Q, sit_s :: Q, sit_kg :: Q, sit_K :: Q, sit_A :: Q, sit_mol :: Q, sit_cd :: Q}
        deriving (Eq, Show)

-- define the dimensionless type
si_dimless = SIType 0 0 0 0 0 0 0

-- merge types by adding exponents termwise
mergeSITypes :: SIType -> SIType -> SIType
mergeSITypes (SIType m1 s1 kg1 k1 a1 mol1 cd1) (SIType m2 s2 kg2 k2 a2 mol2 cd2)
    = SIType (m1 + m2) (s1 + s2) (kg1 + kg2) (k1 + k2) (a1 + a2) (mol1 + mol2) (cd1  + cd2)

-- actual numbers with an SI unit attached
data SI x = SI SIType x deriving (Eq, Functor, Show)

-- simple multiplication and addition
instance (Num x) => Num (SI x) where 
    SI t1 x1 + SI t2 x2 
        | t1 /= t2  = error $ "Type mismatch: saw " ++ show t1 ++ " and " ++ show t2
        | otherwise = SI t1 (x1 + x2)
    SI t1 x1 * SI t2 x2 = SI (mergeSITypes t1 t2) (x1 * x2)
    fromInteger n = SI si_dimless (fromInteger n)
    -- fmap comes from Functor above and just applies the function to the wrapped number.
    negate = fmap negate
    abs    = fmap abs
    signum = fmap signum

Since Haskell is statically typed you can also do this with compile-time checking (the essential trick is called "phantom types"), but that requires more effort, as you need to write (in principle) code for type-level rational numbers.
The SI types are independent in the sense that they represent types of physical phenomena which we would not likely confuse for each other: durations, distances, temperatures, brightnesses, masses, amounts of particles, and electric currents. 
In fact the cgs systems (centimeter-gram-second) frequently use a definition of charge as "1 statcoulomb is the amount of charge $q$ such that two charges of that magnitude placed $1\text{ cm}$ away from each other experience a force of $1\text{ dyne} = 1~\text{g}~\text{cm}/\text{s}^2.$ In these systems it is very common to erase the type involved in the unit by writing e.g. $\vec F = q_1 q_2 \hat r / r^2$ and establishing essentially that $1\text{ statC} = 1\text{ g}^{1/2}~\text{cm}^{3/2}~\text{s}^{-1}$ when looking at the world without that type. The only abstract problem is that the Maxwell equations tend to take on different forms for different unit systems; in this case instead $\nabla \cdot \vec E = 4\pi~\rho.$ 
A: Only the definitions of one second, one Kelvin and one kilogram are completely independent of each other (see this scheme). All other base units are derived from these three units.
In earlier days, the meter was just an etalon which was defined as 1 meter. Currently it is defined via the second with the help of the speed of light. It's derived from the definition of a second but we need to put a number for the speed of light. A different number won't change the speed of light but the length of 1m. The speed of light was chosen that the new definition of 1m was close to the old etalon.
